home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
relnotes
/
langtools
/
relnotes
next >
Wrap
Text File
|
1998-11-02
|
4KB
|
157 lines
LANGTOOLS
---------
Langtools contains the following Fortran utilities:
ftnlist - source code listing
ftnlint - fortran lint utility
ftnsplit - f90 aware split/file dependecy analysis
ftnmgen - fortran makefile generator
ftnchop - program unit problem isolator
All of these utilities work with both f90 and f77 source. f90 Version 7.2
is required for ftnlist, ftnlint, ftnsplit, and ftnmgen. The compiler
is invoked as a by-product of running ftnsplit and ftnmgen.
ftnlist
-------
A listing utility which produces more cross reference information than
that provided with f90 -listing. To use, it is required to compile the
Fortran source with the -cif option enabled. For example:
% f90 -cif -c file.f
% ftnlist file.f > file.list
Information provided includes: variable and common block cross refernce
tables, user defined type lists, loop information, static call
graph details, etc.
ftnlist also provides (by default) all of the information that ftnlint
produces.
ftnlint
-------
The ftnlint command checks Fortran programs for program constructs
that may need further investigation. ftnlint perform these checks
on two levels: local per subprogram and global for all encountered
subprograms. For example:
% f90 -cif -c file.f
% ftnlint file.f > file.lint
% more file.lint
ftnlint 2.3: initiated 08:48 Thu Jul24,1997 (created 14:02 Wed Jul23,97)
ftnlint a.f
##################################################################################################################################
DEMO(line 1) - 11 ftnlint messages
1) <41> No references to PARAMETER "DUMMY"
2) <41> No references to PARAMETER "ERF"
3) <11> No references to COMMON /NEW/
4) <11> No references to COMMON /DAVES/
5) <11> No references to COMMON /JIM/
6) <11> No references to COMMON /_BLNK__/
7) <1> Local Variable "EXTIME" may be used before it is assigned a value
8) <4> Local Variable "I" is assigned a value but never used
9) <3> Local Variable "MC" is used but never assigned a value
TEST(line 42) - 1 ftnlint message
1) <52> Subprogram TEST() appears to not do anything. That is, there
are no external calls, no I/O, and no Arguments or COMMON
Block elements are written or passed.
etc.
ftnsplit
--------
The ftnsplit utility splits named Fortran files into separate files,
with one unit per file, and lists the resultant files. Each unit
includes the following program segments: blockdata, function, main
program, module, and subroutine.
ftnsplit works with f90 source code (ie as opposed to fsplit which only
works with f77 source).
In addition, ftnsplit may be used to show inter-file dependencies. That
is, for include file usage and module usage. For example:
file.f
program fred
include "abc.h"
...
end program fred
subroutine jim
use harry
...
end subroutine jim
harry.f
module harry
...
end module harry
% ftnsplit -xm file.f harry.f
fred
abc.h
jim
module harry
harry
Or
% ftnsplit -a file.f harry.f
file.f
abc.h
module harry from file harry.f
ftnmgen
-------
ftnmgen may be used to produce makefiles for compiling Fortran source
code. By default, ftnmgen uses ftnsplit to create multiple unit file's
and creates a makefile to compile and link those files. For example:
% ftnmgen a.f
demo.f
test.f
% make
f90 -c demo.f
f90 -c test.f
f90 -o a.out demo.o test.o
Alternatively, a file base makefile can be created. For example:
% ftnmgen -a a.f
a.f
% make
f90 -c a.f
f90 -o a.out a.o
ftnchop
-------
The ftnchop utility is a program that isolates problems to object file
level by using a mix-and-match technique. This utility is most useful
with programs that contain several source files. To run the ftnchop
utility you need to have one working version of a program and one
version that is not working. When run, ftnchop finds the object files
that are causing the program to malfunction. Debugging efforts can
then be concentrated to those files.
/* USMID @(#) langtools/relnotes/relnotes 30.1 07/29/97 06:33:58 */